#include <stdio.h>
#include <string.h>
#include <assert.h>

//模拟实现strcpy
char *my_strcpy(char *to_arr, const char *go_arr) { //第三步，保护源空间内容不发生改变
//第四步，返回字符串指针类型

    assert(go_arr != NULL || to_arr != NULL); //第二步，断言，防止传入空指针
    char *ret = to_arr;
    while ((*to_arr++ = *go_arr++)); //第一步，拷贝功能的实现
    return ret; //第四步，返回目标空间的起始地址
}

int main() {
    char arr1[10] = {'h', 'e', 'l', 'l', 'o'};
    //字符串数组初始化，有空位就放'\0'
    char arr2[10] = "xxxxxxxxxx";
    //strcpy(arr2, arr1);
    int lens = strlen(arr2);
    printf("%s", my_strcpy(arr2, arr1)); //函数的链式访问

    return 0;
}